Animations are widely used in computer programs, and serve a variety of purposes. For example, an animation can be used to direct a user's attention to a certain area of a display, or to graphically illustrate that the computer is currently processing the user's request. An animation requires sequentially displaying several images at the same location on a display device. Each individual image varies slightly from the previous image, and when sequentially displayed the differences between the images result in an animation.
There are currently several problems with conventional animation techniques. An animation requires several discrete processes, including loading images, maintaining a timer interrupt, and displaying the images in the proper sequence. The functions to implement these processes and the calls to the functions are generally dispersed throughout the code, which can make the implementation as well as the debugging of an animation difficult.
Another problem with animations is that the code required to load and display the images differ depending on the type of graphical image that is used to implement the animation. For example, in the Microsoft Windows environment, one set of system functions are used to load and display icon images, and another set of system functions are used to load and display bitmap (BMP) images. Thus, the developer must always be conscious of the type of image which is being used to implement an animation, and be familiar with the different functions required to process each type of image.
Animations are frequently used to inform a user that the computer is busy processing a request, and cannot currently accept additional requests. Such processes sometimes allow the user to select a Pause or Stop button, to temporarily or permanently stop the process. When the Stop button is activated to stop the process, the animation is also usually stopped, or paused, and the last displayed image in the animation sequence remains displayed on the screen. Some images in an animation may be more aesthetically pleasing than others, and in such a pause situation, it is desirable to pause the animation on an aesthetically pleasing image, or to provide an entirely new image which graphically illustrates the pause. Conventional animation techniques do not easily allow the temporary loading of a particular image to be displayed during a pause situation.
When marketing software internationally, animation can cause other problems. Dialog boxes and other windows typically must have the displayed text translated into the language of the country in which the product is being sold. To ease this translation process, developers will frequently place such text into a data file, sometimes referred to as a resource file, the contents of which can be modified without having to modify and recompile the source software. A translator, sometimes referred to as a `localizer` can then edit the resource file and translate the text strings in the resource file from one language to another. The resource file is then relinked with the executable program. When the program is executed, it reads the resource file, and displays the translated text. Since the text was extracted from a data file, it is not necessary to recompile the program. This translation process can, however, cause problems with animations. The translated text can require a greater amount of space than required by the original text, resulting in the translated text overlapping the space originally reserved for the animation. Conventional animation techniques require modifying the software to display the animation elsewhere in the parent window box, which is usually not within the skills of the localizer, and which increases the cost of preparing the software for release in the international market.
It is apparent that a method and system which eases the implementation of animations, which can be used to animate different types of graphical images, and which allows the location of the animation to be modified without requiring modification and recompilation of the software would be desirable.